package arrays

// FindBy 查找数组中第一个满足条件的元素及其下标
// 如果元素不存在，返回零值和 -1
func FindBy[T any](array []T, fn func(T, int, []T) bool) (T, int, bool) {
	for i, v := range array {
		if fn(v, i, array) {
			return v, i, true
		}
	}
	var zero T
	return zero, -1, false
}
